package org.lemon.cla.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.lemon.cla.enums.ClubMemberRoleEnum;
import org.lemon.cla.enums.ClubMemberStatusEnum;
import org.lemon.cla.enums.UserRoleEnum; // 导入用户角色枚举

import java.time.LocalDateTime;

@Data
@Schema(description = "社团成员视图对象 (包含成员用户信息)")
public class ClubMemberVo {

    @Schema(description = "成员ID", example = "1")
    private Long memberId;

    @Schema(description = "用户ID", example = "1")
    private Long userId;

    // --- 成员用户信息 ---
    @Schema(description = "用户名", example = "member_user")
    private String username;

    @Schema(description = "头像URL", example = "http://example.com/member_avatar.jpg")
    private String avatarUrl;

    @Schema(description = "真实姓名", example = "张成员")
    private String realName;

    @Schema(description = "手机号", example = "13612345678")
    private String phone;

    @Schema(description = "邮箱", example = "member@example.com")
    private String email;

    @Schema(description = "用户角色", example = "学生")
    private UserRoleEnum userRole; // 成员的用户角色

    @Schema(description = "用户是否已逻辑删除 (true if user is logically deleted)", example = "false")
    private Boolean userIsDeleted; // 新增字段：成员关联的用户是否已逻辑删除

    @Schema(description = "社团ID", example = "1")
    private Long clubId;

    @Schema(description = "加入时间", example = "2024-06-22T10:00:00")
    private LocalDateTime joinTime;

    @Schema(description = "社团内角色", example = "成员", allowableValues = {"成员", "社长"})
    private ClubMemberRoleEnum role;

    @Schema(description = "成员状态", example = "申请中", allowableValues = {"申请中", "已加入", "已拒绝"})
    private ClubMemberStatusEnum status;
}